Presentation: "Experience report: Using Haskell & Erlang for peer-to-peer protocol implementation"

Combinatorrent and Etorrent are BitTorrent clients - written in Haskell and Erlang respectively. This talk presents the battlefield debriefing of writing them. I argue concurrent programming based on message passing is key to elegance and leads to simpler programs. Furthermore, the talk will give a feel for the ideology around message-passing concurrency. For both peer-to-peer clients, we present the Good, the Bad and the Ugly: what advantages do you gain from fully embracing Erlang or Haskell? What was hard and had to be worked around? And what design mistakes happened along the way?

The talk requires no knowledge of Haskell, nor Erlang.

Keywords: Concurrency, Haskell, Erlang, Peer-to-peer technology, bittorrent, message passing, experience report, elegance.

Target Audience: Curious programmers, wanting a good war-story on embracing new concurrency ideas.
 

Download slides

Jesper Louis Andersen, Programming Language Geek

Jesper Louis Andersen

Biography: Jesper Louis Andersen

Jesper is a Danish programming language geek who has programmed in numerous different programming languages. He is particularly interested in functional programming weaved with concurrency. He likes to try out new ideas from theoretic research by finding a real-world application and building a system around the idea in order to evaluate its usefulness. In the process he likes to apply knowledge from different areas of mathematics and computer science and he has a curiosity for anything new.

He is the principal programmer and leader of two open source projects, implementing the BitTorrent Peer-to-peer content distribution protocol. The two projects use Erlang and Haskell respectively and attempts to exploit the advantages of each language as much as possible.

He holds a B.Sc in Computer Science and is currently pursuing his masters degree. His studies has been centered around theoretical aspects of compiler design, semantics, type theory and formal verification.
 
Software Passion: My passion is to construct innovative software programs by cherry-picking new theory and ideas and mix them with proven practice.
 
Links: